﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace Consultorio_Medico
{
    public partial class ModificarUsuario : Form
    {
        public ModificarUsuario()
        {
            InitializeComponent();
        }

        private void cmbBusqueda_SelectedValueChanged(object sender, EventArgs e)
        {
            MySqlConnection conexion = null;
            MySqlDataReader lector = null;
            try
            {
                String cadenaConexion = "Server=Localhost;Database=consultorio;Uid=root;Pwd=123;";
                conexion = new MySqlConnection(cadenaConexion);
                MySqlCommand consulta = conexion.CreateCommand();
                consulta.CommandText = "SELECT usuario, password, nom_usu, fecha_actual, activo FROM usuarios WHERE usuario = @usuario";
                consulta.Parameters.AddWithValue("@usuario", cmbBusqueda.Text);
                conexion.Open();
                lector = consulta.ExecuteReader();
                while (lector.Read())
                {
                    txtFecha.Text = lector["fecha_actual"].ToString().Substring(0,10);
                    txtUsuario.Text = lector["usuario"].ToString();
                    txtPass.Text = lector["password"].ToString();
                    String[] nombreCompleto = lector["nom_usu"].ToString().Split(' ');
                    txtNombre.Text = nombreCompleto[0];
                    txtApellido.Text = nombreCompleto[1];
                    if (lector["activo"].ToString().Equals("True"))
                    {
                        cmbActivo.Text = "SI";
                    }
                    else
                    {
                        cmbActivo.Text = "NO";
                    }
                }
                lector.Close();
                lector.Dispose();
                conexion.Close();
                conexion.Dispose();
            }
            catch (Exception)
            {
                conexion.Close();
                conexion.Dispose();
            }

        }

        private void ModificarUsuario_Load(object sender, EventArgs e)
        {
            cmbBusqueda.Text = "Seleccione un usuario...";
            String[] estados = {"SI","NO"};
            cmbActivo.Items.AddRange(estados);
            MySqlConnection conexion = null;
            MySqlDataReader lector = null;
            try
            {
                String cadenaConexion = "Server=Localhost;Database=consultorio;Uid=root;Pwd=123;";
                conexion = new MySqlConnection(cadenaConexion);
                MySqlCommand consulta = conexion.CreateCommand();
                consulta.CommandText = "SELECT usuario FROM usuarios";
                conexion.Open();
                lector = consulta.ExecuteReader();
                while (lector.Read())
                {
                    cmbBusqueda.Items.Add(lector["usuario"].ToString());
                }
                lector.Close();
                lector.Dispose();
                conexion.Close();
                conexion.Dispose();
            }
            catch (Exception)
            {
                conexion.Close();
                conexion.Dispose();
            }
        }

        private void btnAlta_Click(object sender, EventArgs e)
        {
            if (modificar())
            {
                MessageBox.Show("Usuario Modificado!!", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                this.Close();
                this.Dispose();
            }
            else
            {
                MessageBox.Show("Usuario no Modificado!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private Boolean modificar()
        {
            Boolean correcto = false;
            MySqlConnection conexion = null;
            try
            {
                String[] fechaActual = txtFecha.Text.Split('/');
                String fecha = fechaActual[2] + "/" + fechaActual[1] + "/" + fechaActual[0];
                String cadenaConexion = "Server=Localhost;Database=consultorio;Uid=root;Pwd=123;";
                conexion = new MySqlConnection(cadenaConexion);
                MySqlCommand modificar = conexion.CreateCommand();
                modificar.CommandText = "UPDATE usuarios SET usuario = @usuario, password = @password, nom_usu = @nom_usu, fecha_actual = @fecha_actual, activo = @activo WHERE usuario = @usu";
                conexion.Open();
                modificar.Parameters.AddWithValue("@usuario", txtUsuario.Text);
                modificar.Parameters.AddWithValue("@password", txtPass.Text);
                modificar.Parameters.AddWithValue("@nom_usu", txtNombre.Text + " " + txtApellido.Text);
                modificar.Parameters.AddWithValue("@fecha_actual", fecha);
                if (cmbActivo.Text.Equals("SI"))
                {
                    modificar.Parameters.AddWithValue("@activo", 1);
                }
                else
                {
                    modificar.Parameters.AddWithValue("@activo", 0);
                }
                modificar.Parameters.AddWithValue("@usu", cmbBusqueda.Text);
                modificar.ExecuteNonQuery();
                conexion.Close();
                conexion.Dispose();
                correcto = true;
            }
            catch (Exception)
            {
                correcto = false;
                conexion.Close();
                conexion.Dispose();
            }
            return correcto;
        }

        private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
        {
            this.txtFecha.Text = monthCalendar1.SelectionStart.ToShortDateString();

        }
    }
}
